11 research outputs found

    A Denotational Semantics for Communicating Unstructured Code

    Full text link
    An important property of programming language semantics is that they should be compositional. However, unstructured low-level code contains goto-like commands making it hard to define a semantics that is compositional. In this paper, we follow the ideas of Saabas and Uustalu to structure low-level code. This gives us the possibility to define a compositional denotational semantics based on least fixed points to allow for the use of inductive verification methods. We capture the semantics of communication using finite traces similar to the denotations of CSP. In addition, we examine properties of this semantics and give an example that demonstrates reasoning about communication and jumps. With this semantics, we lay the foundations for a proof calculus that captures both, the semantics of unstructured low-level code and communication.Comment: In Proceedings FESCA 2015, arXiv:1503.0437

    Maschinelle Verifikation von Parametrisierten Echtzeitsystemen

    No full text
    Echtzeitsysteme müssen oftmals in der Lage sein, mit beliebig vielen Komponenten umgehen zu können. Der Scheduler eines Echtzeitbetriebssystem, zum Beispiel, verwaltet beliebig viele Threads. Derartige Systeme fallen in die Klasse der parametrisierten Systeme. Deren formale Verifikation ist sehr schwierig, da Standard-Verifikationstechniken für endliche Systemmodelle (z.B. Model Checking) nur für Instanzen des Systems direkt eingesetzt werden können. Es existieren Ansätze für die automatische Verifikationen spezieller Subklassen von parametrisierten Systemen. Bisher fehlt es jedoch an Ansätzen für die umfassende und maschinelle Verifikation von parametrisierten Echtzeitsystemen mit komplexen Systemtopologien. In dieser Arbeit präsentieren wir ein Framework zur maschinellen, umfassenden und semi-automatischen Verifikation parametrisierter Echtzeitsysteme. Den Kern unseres Frameworks bildet der Prozesskalkül Timed CSP, mit dem sowohl das funktionale Verhalten als auch das nicht-funktionale zeitliche Verhalten von Systemen erfasst werden kann. Unsere wichtigsten Beiträge sind: Erstens, eine Formalisierung der operationalen Semantik von Timed CSP sowie Bisimulationsäquivalenzen im Theorembeweiser Isabelle/HOL. Zweitens stellen wir eine (mechanisierte) zeitbehaftete Erweiterung der Hennessy-Milner Logik zur Verfügung. Zusammen mit der Formalisierung von Timed CSP und den entsprechenden Bisimulationen ermöglicht dies die umfassende und maschinelle Verifikation von möglicherweise unendlichen (parametrisierten) Echtzeitsystemen in modularer Art und Weise. Dadurch dass wir sowohl bisimulations- als auch eigenschaftsbasierte Verifikation ermöglichen, erlauben wir dem Entwickler insbesondere, das Verifikationsproblem in Teilprobleme zu zerlegen. Dies vereinfacht die Verifikation erheblich. Dabei stellt der Theorembeweiser sicher, dass alle Beweise lückenlos und damit garantiert korrekt sind. Unser dritter wesentlicher Beitrag ist die Unterstützung des Entwicklungsprozesses durch automatische Verifikationswerkzeuge. Dazu haben wir unser Rahmenwerk um Transformationswerkzeuge angereichert, mit denen (endliche) Timed CSP Spezifikationen in einen diskreten Dialekt von CSP and in UPPAAL timed automata transformiert werden können. Somit können der Verfeinerungschecker FDR2 und der Model Checker UPPAAL eingesetzt werden, um Systeminstanzen automatisch zu simulieren und zu verifizieren. Dies ermöglicht es, Fehler im Design schon vor dem relativ aufwändigen interaktiven Theorembeweisen aufzudecken. Die Anwendbarkeit unseres Frameworks zeigen wir anhand der Fallstudie eines Schedulers eines Echtzeitbetriebssystems. Damit demonstrieren wir einerseits den Gewinn durch unsere Transformationen von Timed CSP in automatisch analysierbare Sprachen. Andererseits zeigen wir die Effektivität unseres Theorembeweiser-Ansatzes zur Verifikation parametrisierter Echtzeitsysteme. Die Motivation dieser Arbeit leitet sich von der Beobachtung ab, dass eingebettete Systemen mit steigender Komplexität oft auf Kernkomponenten wie Bussystemen und Echtzeitbetriebssystemen aufsetzen. Das korrekte Funktionieren dieser Systeme hängt damit stark von der Verlässlichkeit dieser Kernkomponenten ab. In dem Bereich der sicherheitskritischen eingebetteten Echtzeitsystemen reicht es jedoch nicht aus, diese zu simulieren oder zu testen, da damit die Abwesenheit von Fehlern nicht gewährleistet werden kann. Formale Verifikation adressiert dieses Problem. Um jedoch praktisch einsetzbar zu sein, sollten formale Verifikationstechniken mechanisiert und so weit wie möglich automatisiert sein. Die Mechanisierung hat zusätzlich den Vorteil, dass sie Fehler im Prozess der Verifikation ausschließen. Unsere Fallstudie stellt eine wichtige Kernkomponente von sicherheitskritischen Systemen dar. Zusammenfassend zeigen wir, wie derartige Kernkomponenten maschinell verifiziert werden können und wie mithilfe von automatischen Verifikationswerkzeugen ihre Entwicklung unterstützt werden kann.Real-time systems often have to be able to cope with an unbounded number of components. For example, a real-time operating system scheduler manages arbitrarily many threads or a bus system copes with arbitrarily many connected devices. Such systems can be characterized as parameterized systems. The number of (homogeneous) components is the parameter of these systems. This makes their formal verification hard because standard verification techniques for finite system models (for example model checking) can be employed directly only for instances of the system. There exist several approaches for the (automatic) verification of special sub-classes of (mostly untimed) parameterized systems. However, approaches or tools that enable the comprehensive and mechanical verification of parameterized real-time systems with complex system topologies are still missing. In this thesis, we overcome this problem by providing a framework for the mechanical, comprehensive, and semi-automatic verification of parameterized real-time systems. At its core we employ the process calculus Timed CSP, which is well-suited to describe the functional behavior as well as the non-functional timing behavior of systems. Our main contribution is threefold: First, we have developed a formalization of the operational semantics of Timed CSP together with notions of bisimulation equivalences in the Isabelle/HOL theorem prover. Second, in order to specify (timing) properties of systems, we provide a (mechanized) timed extension of Hennessy-Milner logic. Together with our formalization of Timed CSP and corresponding bisimulations, this enables the comprehensive and mechanical verification of possibly infinite (parameterized) real-time systems in a modular fashion. In particular, by providing both bisimulation and property based verification, we allow the developer to divide the verification problem into subproblems, which eases verification significantly. At the same time, the theorem prover ensures that no corner cases can be overlooked and all proofs are guaranteed to be correct. Finally, we support the development process of such systems with the integration of automatic verification tools. To this end, we have enriched our framework with transformation engines with which (finite) Timed CSP specifications can be transformed to a discrete dialect of CSP and to UPPAAL timed automata. By this, the FDR2 refinement checker and the UPPAAL tool suite can be used to explore and verify finite instances automatically. Thus, possible design flaws can be detected and corrected early in the development cycle and prior to the relatively time-consuming task of interactive theorem proving. We show the applicability of our framework using the case study of a parameterized real-time operating system scheduler. Thereby, we demonstrate the benefits of the proposed mapping of Timed CSP to automatically analyzable languages. Furthermore, we show the effectiveness of our theorem proving approach for the comprehensive verification of parameterized real-time systems. The motivation for our work comes from the observation that, due to their increasing complexity, embedded systems are often built atop trusted cores such as bus systems and real-time operating systems. Their correct functioning thus heavily depends on the correctness of the underlying cores. In the area of safety-critical embedded real-time systems, simulation and testing are not sufficient because they cannot ensure the absence of critical errors. Formal verification tackles this problem. To be of practical relevance, however, formal verification techniques should be mechanized and automatized as far as possible. The mechanization comes with the additional benefit of precluding verification faults as they can occur in hand-written proofs. Our case study forms an important core part of many safety-critical systems. In summary, we show how such cores can be mechanically verified and how their development can be supported with the help of automatic verification tools

    Technischer Bericht, begleitend für: Erhalt von Lebendigkeitseigenschaften von synchroner Kommunikation bei der Implementierung in asynchronen, unstrukturierten Low-Level-Sprachen

    No full text
    In the implementation of abstract synchronous communication in asynchronous unstructured low-level languages, e. g., using shared variables, the preservation of safety and especially liveness properties is a hitherto open problem due to inherently different abstraction levels. Our approach to overcome this problem is threefold: First, we present our notion of handshake refinement with which we formally prove the correctness of the implementation relation of a handshake protocol. Second, we verify the soundness of our handshake refinement, i. e., all safety and liveness properties are preserved to the lower level. Third, we apply our handshake refinement to show the correctness of all implementations that realize the abstract synchronous communication with the handshake protocol. To this end, we employ an exemplary language with asynchronous shared variable communication. Our approach is scalable and closes the verification gap between different abstraction levels of communication.Bei der Implementierung von abstrakter, synchroner Kommunikation in asynchronen, unstrukturierten Low-Level-Sprachen, zum Beipspiel mit Hilfe von geteilten Variablen, ist die Erhaltung von Sicherheits- und Lebendigkeitseigenschaften ein bis dato ein ungelöstes Problem aufgrund der verschiedenen Abstraktionsstufen. Unser Ansatz um dieses Problem zu lösen ist dreiteilig: Zu erst stellen wir unseren Begriff der Handschlag-Verfeinerung vor, mit dem wir die Korrektheit von Implementierungen, die das Handschlag-Protokoll benutzen, zeigen können. Zweitens weisen wir nach, dass die Handschlag-Verfeinerung die Sicherheits- und Lebendigkeitseigenschaften erhält. Drittens, zeigen wir das alle Programme, die synchrone Kommunikation mit dem Handschlag-Protokoll implementieren, korrekt sind. Wir verwenden dazu eine beispielhafte Sprache mit asynchroner Kommunikation mit Hilfe von geteilten Variablen. Unser Ansatz ist skalierbar und schließt die Verifikationslücke zwischen den verschiedenen Abstraktionsstufen der Kommunikation

    Timed Path Conditions in MATLAB/Simulink

    No full text
    Part 2: System-Level DesignInternational audienceMATLAB/Simulink is a widely-used industrial tool for the development of complex embedded systems. However, due to the complexity and the dynamic character of the developed models, their analysis is a difficult challenge, in particular if timing aspects are involved. In this paper, we present an approach for the construction of timed path conditions for MATLAB/Simulink models. Timed path conditions allow for fine-grained conclusions about the existence of possibly critical paths through a model containing time-dependent elements. With the help of timed path conditions, it is possible to identify interference and non-interference between model parts. Furthermore, they have the potential to reduce the complexity of models to improve verifiability, reason about compliance with security policies as well as generate feasible, efficient test cases. We demonstrate the applicability of our approach with a shared buffer for public as well as confidential data

    Software for "Optimized laser ion acceleration at the relativistic critical density surface"

    No full text
    In the effort of achieving high-energetic ion beams from the interaction of ultrashort laser pulses with a plasma, volumetric acceleration mechanisms beyond Target Normal Sheath Acceleration have gained attention. A relativisticly intense laser can turn a near critical density plasma slowly transparent, facilitating a synchronized acceleration of ions at the moving relativistic critical density front. While simulations promise extremely high ion energies in in this regime, the challenge resides in the realization of a synchronized movement of the ultra-relativistic laser pulse (a030a_0\gtrsim 30) driven reflective relativistic electron front and the fastest ions, which imposes a narrow parameter range on the laser and plasma parameters. We present an analytic model for the relevant processes, confirmed by a broad parameter simulation study in 1D- and 3D-geometry. By tayloring the pulse length and plasma density profile at the front side, we can optimize the proton acceleration performance and extend the regions in parameter space of efficient ion acceleration at the relativistic relativistic density surface
    corecore